#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
MoBox Dashboard 后端服务启动文件
"""
import os
import sys
import logging
from werkzeug.serving import run_simple
from gevent import monkey

# 应用gevent补丁，提高性能
monkey.patch_all()

# 添加当前目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from app import create_app

# 配置日志
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

def main():
    """主启动函数"""
    # 创建Flask应用
    app = create_app()
    
    # 获取socketio实例
    from app import socketio
    
    # 配置主机和端口
    host = os.environ.get('HOST', '0.0.0.0')
    port = int(os.environ.get('PORT', 8060))
    debug = os.environ.get('DEBUG', 'false').lower() == 'true'
    
    print(f"""
🚀 MoBox Dashboard 后端服务启动中...
📡 服务地址: http://{host}:{port}
🔧 调试模式: {'开启' if debug else '关闭'}
📊 服务模式: SocketIO + Flask
""")
    
    try:
        # 使用SocketIO运行服务器以支持WebSocket
        socketio.run(
            app,
            host=host,
            port=port,
            debug=debug,
            use_reloader=False,  # 禁用重载器避免双重运行
            allow_unsafe_werkzeug=True  # 允许开发模式运行
        )
    except KeyboardInterrupt:
        print("\n⚠️  服务器已停止")
    except Exception as e:
        print(f"❌ 服务器启动失败: {e}")
        sys.exit(1)

if __name__ == '__main__':
    main() 